home *** CD-ROM | disk | FTP | other *** search
- #include <stdlib.h>
- #include <stdio.h>
- #include <string.h>
-
- void escribe_inicio(FILE *pf,char *cabecera1,char *cabecerahttp,char *cabeceraftp,char *cadena,short int *ftp);
- void escribe_cadena(FILE *pf,char *cadena,short int *ftp);
- void escribe_fin(FILE *pf,char *final,char *vacia);
- char *lee_cadena(void);
-
- void main(int argc,char *argv[])
- {
- short int ftp=0;
- int mal=0;
- char vacia[]="";
- char *cadena;
- char aviso1[]="\nBookmark Maker by FrEdY !";
- char aviso2[]="\nUsage:BM <filename>. BM -h for help";
- char cabecera1[]="<LI><a href=";
- char cabecerahttp[]="http://";
- char cabeceraftp[]="ftp://";
- char final[]="</a>\n";
- FILE *pf;
- puts(aviso1);
- puts(aviso2);
- if(argc>2)
- {
- mal=1;
- }
- if(strcmp(argv[1],"-h")==0)
- {
- printf("\nThis program creates a simple HTML text to use as bookmark.");
- printf("\nThe format of the text lines is:");
- printf("\n<LI><a href=");
- putc('"',stdout);
- printf("http:// or ftp://address");
- putc('"',stdout);
- printf("> Name </a>");
- printf("\nIf the address is ftp:// instead http:// put a - as first address letter.");
- printf("\nThe file will be saved as 'Bookmark.HTML' by default.");
- printf("\nTo finish, press RETURN at the 'Enter Address' prompt.\n");
- mal=1;
- }
- if(mal!=1)
- {
- if(argc==1)
- {
- pf=fopen("Bookmark.HTML","a+");
- }
- else
- {
- pf=fopen(argv[1],"a+");
- }
- cadena=lee_cadena();
- while((strcmp(vacia,cadena)!=0) && mal==0)
- {
- ftp=0;
- fflush(stdin);
- escribe_inicio(pf,cabecera1,cabecerahttp,cabeceraftp,cadena,&ftp);
- escribe_cadena(pf,cadena,&ftp);
- escribe_fin(pf,final,vacia);
- cadena=lee_cadena();
- }
- fclose(pf);
- }
- }
-
- char *lee_cadena(void)
- {
- char *p=NULL;
- char aux[100];
- printf("\nEnter Address:");
- gets(aux);
- p=(char *) malloc((strlen(aux)+1)*sizeof(char));
- strcpy(p,aux);
- return(p);
- }
-
- void escribe_inicio(FILE *pf,char *cabecera1,char *cabecerahttp,char *cabeceraftp,char *cadena,short int *ftp)
- {
- fputs(cabecera1,pf);
- fputc('"' ,pf);
- if(cadena[0]=='-')
- {
- fputs(cabeceraftp,pf);
- *ftp=1;
- }
- else
- {
- fputs(cabecerahttp,pf);
- }
- }
-
- void escribe_cadena(FILE *pf,char *cadena,short int *ftp)
- {
- int i=1;
- if(*ftp==0)
- {
- fputs(cadena,pf);
- }
- else
- {
- while(cadena[i]!='\0')
- {
- fputc(cadena[i],pf);
- i++;
- }
- }
- fputc('"',pf);
- }
-
- void escribe_fin(FILE *pf,char *final,char *vacia)
- {
- char nombre[80];
- fputc('>',pf);
- fputc(' ',pf);
- printf("Enter Name for the Address:");
- gets(nombre);
- fflush(stdin);
- if(strcmp(nombre,vacia)==0)
- {
- fputc('*',pf);
- }
- else
- {
- fputs(nombre,pf);
- }
- fputs(final,pf);
- }
-